Repository navigation
fix(diagnostics): keep credentials and private hosts out of diagnostic and config output - #5573
Conversation
…nect-to failures Combines three fork PRs into one change on current dev: bare destinations after resolver/socket markers are redacted only where grammar proves the position (sole argument or after 'lookup'), connect-to failures redact the bare target when a failure term follows, and rewrites splice at the tail offset so a marker word that repeats the destination cannot take the [host] itself. bun test tests/lab/lab-evidence-sanitization.test.ts: 31 pass (cherry picked from commit 69990d9) Source: #5538 commit b90139f Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
Classify the token without its trailing period and leave the period outside the mask: ECONNREFUSED redis. -> ECONNREFUSED [host]. Previously the punctuation defeated host classification and leaked the destination. (cherry picked from commit a74038c) Source: #5538 commit d8042a5 Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
Mask only credential-bearing proxy URLs (userinfo stripped via redactUrlForLog, host/port kept); direct and credential-less values print unchanged. Clarify that config export stays raw for restore. (cherry picked from commit acdbb1c) Source: #5538 commit dc4d273 Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
Per review on #5463: stripping terminal control characters still left attacker-chosen residue on the quota line. parseClaudeLimit now returns null unless the name reduces to a recognized model (Fable, Opus, Sonnet); the test asserts the residue is not emitted and adds a recognized-name positive case. (cherry picked from commit a9a6bac) Source: #5538 commit aaffe75 Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
… prose Use normalized config keys for get and mutation output. Preserve direct resolver destinations when explanatory text follows, while retaining socket prose exclusions. Add focused regressions and align output contracts. Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Independent security review: PASS, no blocking findings. Reviewed commit: adfb59a. The only later changes are a merge of current Scope and conclusions:
This was a static review. Runtime evidence comes from this PR's hosted CI. |
|
✅ Deterministic PR hygiene checks passed. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Repository: lidge-jun/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (16)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Diagnostic and config output could reproduce values that belong only in private configuration or upstream responses. This carries the consolidated work from #5538 (itself combining #5475, #5427, #5414 and #5463) onto current
dev, and adds two repairs found during security review.Carried changes, one commit per original contribution with authorship preserved:
pool.credentialGroupsvalidation messages identify invalid groups and members by position and no longer print group ids or credential strings.ocx config show,get, and mutation output strip userinfo from proxy URLs while keeping host and port;directand credential-free values stay readable, a non-URL value is masked whole, andconfig exportstays raw so a backup can restore credentials.Repairs added here:
ocx config get 'providers.openai.proxy 'orproviders.openai.proxy.printed the full credentialed URL. Get and mutation output now redact by the normalized final segment.lookup, sogetaddrinfo ENOTFOUND redis: no such hostkeptredis, which the previous sanitizer redacted. A bare first argument directly afterENOTFOUND,EAI_AGAIN, orhost=/host:is redacted again; socket-state prose such asETIMEDOUT operation timed outis unchanged.Owner docs (
structure/config.md,structure/catalog.md,structure/providers-and-adapters.md,structure/adapters/compatibility-lab.md) and the CLI reference describe the resulting output contracts. No new import reaches Compatibility Lab code from the core request path.Supersedes #5538.
Co-authored-by: luvs01 27862058+luvs01@users.noreply.github.com
Verification
git diff --checkis clean. The source commits were compared by range-diff with each original PR head; the carried patches match apart from provenance trailers.Checklist
Summary by CodeRabbit
New Features
Documentation